\chapter{绪论}

\section{研究背景与意义}

日常生活中，在各种场景下都离不开语音的交流，声音是沟通的重要媒介，它富含了说话人所表达的文字含义和它带有的语言情绪，是一种便捷有效的交流方式。声音包括音调、音色、响度三个基本特性，这三种要素的合理搭配，造就了千万种不同的声音，而语音则是通过声音来表达表达语言，是语言的物质材料，是人的发声器官发出的代表一定意义的声音。

如图\ref{chapter1:audio-information}所示，语音信号中包含了三类信息：语言信息、副语言信息以及非语言信息，其中语言信息包括语音表述的文字内容等，而副语言信息则表示说话人说话时的一些韵律特征等，说话人身份信息是语音信号的非语言信息中的一部分。如何使用计算机从语音中自动提取相关信息成为一个挑战性的课题，智能语音技术包括了大量细分领域，包括语音识别（Automatic Speech Recognition，ASR）、关键词检出（Keyword Spotting，KWS）、说话人识别（Speaker Recognition）、语音增强（Speech Enhancement）和语音合成（Text To Speech, TTS）等。其中说话人识别（也称声纹识别）和指纹识别虹膜识别一样是生物认证技术中的一种，是通过分析语音信号中的说话人身份信息和特征参数来识别说话人身份的技术。

\begin{figure}[htbp]
	\centering
	\includegraphics[width=1.0\textwidth]{figures/chapter1/audio-information.jpg}
	\caption{语音中包含的信息\ucite{kuppusamy2021convolutional}}
	\label{chapter1:audio-information}
\end{figure}

每个人的语音声学特征虽然有一定程度上的稳定性，又具有变异性，不是绝对、一成不变的。这种变异可来自生理、病理、心理、模拟、伪装，也与环境干扰有关。但是总体来说，一个人的声音是的相对稳定性可以有效地到达说话人识别的目标，并且对于不同场景、不同语言、不同时间上都有较好的效果，与其他生物技术相比具有以下特点：

\begin{itemize}
	\item 声纹特征的获取来源为语音，在生活中获取方便、自然
 	\item 语音获取渠道简单，成本较低（通过常见麦克风、通讯设备都可以实现。区别于指纹、虹膜等身份提取设备）
  	\item 语音样本，易于转发，适用于远程身份确认
   	\item 声纹辨认和确认的算法复杂度相对较低，效率高
    \item 声纹识别技术配合一些其他措施，如通过语音识别进行内容鉴别等，可以有效地提高准确率
\end{itemize}

基于以上优点，声纹识别技术在公安领域、金融领域应用广泛，公安系统中，它可以用于重点人员布控、侦查破案、反电信欺诈等方面。例如在重点人员布控方面，
通过建立重点人员声纹数据库，在110接警、重点区域范围、重大活动期间，一旦发现重点人员、黑名单人员的声纹信息出现，即进行预警，从而有效进行事前预防。
在公安领域，建立重点人员声纹数据库时，主要通过标准声纹采集对声纹进行采集。而在金融系统中，在各项财产交易中，需要进行有效地人物信息确认，从而保护大家的财产安全。在进行重要交易时可以通过声纹信息判断代理人的信用信息，从而确保交易过程安全、便捷。我们正处在一个迫切需要个性化定制的时代，声纹作为一个人独一无二的身份特征，使得该项技术未来具有更广泛的应用前景，近些年来越来越受到研究者的重视，具有较强的研究价值。

近几年来，随着计算机硬件资源和深度学习技术的迅速发展以及人们对智能设备需求的日益增长，各种语音交互技术逐渐落地于智能手机，智能家居，以及车载设备等应用场景，这些环境往往都是复杂多变的，存在噪声干扰、混响、远场场景语音信号的衰减、录音设备条件复杂等因素，说话人确认系统在这些复杂场景下的准确率一直不理想。复杂场景下的鲁棒性说话人确认是目前工业界与学术界在该领域研究的难点和热点，鉴于此，本文主要研究复杂场景下的鲁棒性说话人确认技术。

\section{研究现状}

\subsection{声纹技术发展历程}

最早的声纹识别可以额追溯到1660年英国查尔斯一世死亡案的审判中，而关于对说话人确定的研究起源于20世纪30年代。

早期的声纹研究研究主要针对人耳听辨实验以及分析听音辨人的可行性。到了上个世纪60年代，贝尔实验室的L. G. Kestar等人通过分析语谱图发现，
每个人对于同一个发音的语谱具有一定的规律性，且总是比不同人发声的语谱更相似，根据以上研究结果，贝尔实验室基于语谱图进行说话人识别，
并在同年发表的文章\ucite{kersta1962voiceprint}中提出“声纹”的具体概念。随后，在1963年，
贝尔实验室的S.Pruzansky提出了基于模板匹配和统计方差分析的说话人识别方法\ucite{pruzansky1963pattern}，得到相关领域学者的广泛关注，兴起了说话人确认研究的高潮。

从20世纪70年代末起，对于说话人确认的研究，慢慢开始转向对于声学特征参数的处理以及新的模式匹配方法上。
研究者相继提出了线性预测系数（Linear Predictive Coefficient, LPC）\ucite{atal1971speech}、
线性预测倒谱系数(Linear Predictive Cepstrum Coefficient, LPCC)\ucite{atal1974effectiveness}。
与此同时，动态时间规整法(Dynamic Time Warping, DTW)\ucite{sakoe1978dynamic}、
矢量量化法(Vector Quantization, VQ)\ucite{burton1983generalization}、
隐马尔科夫模型(Hidden Markov Model, HMM)\ucite{rabiner1986introduction}、
人工神经网络法(Artificial Neural Network, ANN)\ucite{jain1996artificial}等技术也陆续收到大家的关注，并广泛应用于说话人确认中，
从而进一步提高了说话人确认的性能。

到了20世纪90年代以后，高斯混合模型(Gaussian Mixture Model, GMM)\ucite{reynolds1995robust}凭借着他简单、灵活、有效的优点，
同时具有良好的鲁棒性，迅速成为了当时说话人确认中的主流技术，
将说话人确认研究带入一个新的阶段。进入21世纪，在传统GMM-UBM的方法上，将SVM方法运用于高斯混合模型，
得到了有效的改良效果\ucite{campbell2006support}，说话人确认技术得到了进一步的发展。

2010年开始，随着硬件计算能力的提升，通过深度学习方法来进行说话人识别的尝试越来越受到学术界的重视。在实验过程中，可以利用深度神经网络（DNN）
自动进行特征提取，也可以在传统i-vector方法的基础上将DNN作为后端分类器，从而针对所提取的特征实现分类，或者基于一个直接的一个端到端说话人辨认网络。
在2014年，Ehsan Variani\ucite{variani2014deep}等人用DNN对频谱图自动进行特征向量提取，并将提取出的向量命名为d-vector。
这个网络复杂度低，运用简单。然后，在2015年，Yu-hsin Chen\ucite{chen2015locally}等人将卷积神经网络应用于文本依赖的说话人识别中，
并取得了较好的效果。

2016年，谷歌公司在2016年将端到端的思想应用到说话人确认任务中\ucite{heigold2016end}，同时基于深度学习对语音的原始特征进行转换。
目前，利用深度学习方法实现说话人识别，大多通过为说话人空间建模，从而在其中提取代表说话人的身份新特征，这种方式也称为\textbf{嵌入（Embedding）}技术。
上述的 Embedding 系统大多是提取语音帧级别的说话人表征，但由于说话人语音复杂多变，说话人身份在连续的语音段上会有更加明显的提现。
当前，最新的说话人识别研究趋势是基于更大的粒度上的，例如在整句话上使用神经网络作为特征映射\ucite{snyder2017deep}，
从而起到进一步提升研究效果的作用。其中，得到较好效果的模型有x-vector和ResNet。此外，
越来越多的研究者开始将说话人模型和不同的损失函数进行结合，从而提高了说话人识别系统性能。

从传统的 GMM-UBM\ucite{reynolds2000speaker}、PLDA\ucite{kenny2013plda, prince2007probabilistic}+i-vector到目前常用的 x-vector\ucite{snyder2018x}，ResNet\ucite{he2016deep}，ECAPA-TDNN\ucite{desplanques2020ecapa}，声纹识别的建模方法从基于高斯混合模型，逐渐演变到基于深度神经网络模型。
如下图\ref{chapter1:sv-history}所示，声纹识别的研究从小规模的实验室环境，逐步走向大规模的实际应用场景，融入各类尖端技术，实现了较好的发展。

\begin{figure}[htbp]
	\centering
	\includegraphics[width=0.8\textwidth]{figures/chapter1/sv-history.jpg}
	\caption{说话人识别的发展历程}
	\label{chapter1:sv-history}
\end{figure}

\subsection{说话人确认系统基本框架}

说话人识别按照其识别过程的实际任务和应用场景主要分为两类：说话人辨认（Speaker Identification）和\textbf{说话人确认（Speaker Verification）}。

说话人辨认需要解决“这段话由谁所说？”的问题，即在特定的候选说话人（candidate speakers）（也即已注册的说话人）集合中，判断是哪个说话人所说。
假如集合中有M位说话人，那么说话人辨认可以看作M元分类问题。若输入音频是来自集合之外的说话人，那么可以增加一个冒名顶替者（imposter）类别，
此时说话人辨认变成了一个M+1元分类问题。有时，我们将没有冒名顶替者的说话人辨认称为“闭集”说话人辨认；而将可能会有冒名顶替者的说话人辨认称为“开集”说话人辨认。

对于说话人确认任务而言，只需要关心某条语音是否属于某个目标说话人（Target Speaker）,因此实际上可以理解为一个二值问题。
在说话人确认系统中，首先需要由目标说话人事先提供音频样本，通过特定的算法，从这些音频样本中提取出能够表征该目标说话人声纹特征的说话人模板，
这就是声纹注册过程（Voice Enrollment）。在完成注册之后，对于一段未知身份的音频，将这段音频提取出的模板和与目标说话人的模板进行匹配，
得到一个匹配分数。这个分数越高，则系统倾向于认为这段未知身份的音频来自目标说话人，否则则认为这段音频不属于目标说话人。
通过将该匹配分数与某个事先设定好的阈值进行比较，并根据最后的比较结果进行二值判断。

从语音的内容来划分，说话人识别又可分为文本相关和文本无关的说话人识别。

\begin{itemize}
	\item 文本相关（Text-Dependent Speaker Verification，TD-SV）：训练模型的语料需要说话人积极配合，按照规定内容发音，识别时也要按照规定的内容发音，
	由于注册音频和测试音频语义内容一致，因此二者中大量音素是相似的，识别效果也更好，目前大多数的声纹身份认证系统都采用的这种模式。
	\item 文本无关（Text-Independent Speaker Verification，TI-SV）：训练模型的语料对说话人不做任何限制，不限制说话人的说话内容，
	更加灵活，这种情况下，难度更大，性能相比于文本相关的识别要较低一些。
\end{itemize}

在实际应用中，TD-SV 模型由于需要保证用户提高和注册时一样内容的语音，而TI-SV则不需要用户进行额外的配合，因此应用更加广泛，本文将主要关注 TI-SV 模型。

根据上文所述，主流的说话人确认系统框架\ucite{kinnunen2010overview}如图\ref{chapter1:sv-basepipline}所示： 

\begin{figure}[htbp]
	\centering
	\includegraphics[width=0.8\textwidth]{figures/chapter1/sv-basepipline.drawio.pdf}
	\caption{说话人确认系统基本架构}
	\label{chapter1:sv-basepipline}
\end{figure}

\begin{itemize}
	\item \textbf{特征提取（Feature Extraction）}：对输入的音频进行提取特征操作是说话人确认系统的重要步骤。在声纹中一般使用短时傅里叶变换特征（STFT）和 Mel 滤波器组（Mel Filter bank，Fbank）等特征。
	提取完特征之后，往往还会做一些特征的归一化，如倒谱均值方差归一化等，以提高模型的鲁棒性。
 	\item \textbf{说话人嵌入提取（Speaker Embedding Extraction）}：说话人嵌入提取是说话人确认系统的关键步骤，同时也是绝大多数的模型改进的重点。
	上文所述的基于统计模型的 GMM-UBM、i-vector 模型，以及后来发展的基于神经网络的 x-vector、ResNet 等说话人模型，都属于这一部分。
	这类模型通过建模音频特征来提取出句子级别的的说话人信息表征，这个说话人信息表征一般被称为说话人嵌入（Speaker Embedding）。
  	\item \textbf{后端处理和打分（Backend and Score）}：提取出了说话人嵌入之后，往往需要对这个嵌入进一步处理，比如一些正则化操作。
	除此之外，也会使用一些映射和降维等方法进行后处理， 这个过程可以非常有效地提升模型的鲁棒性。之后，
	对后处理完的说话人嵌入进行相似度打分以得到最终结果，目前主流的打分方式有余弦相似度打分和概率线性判别分析（PLDA）打分。
\end{itemize}

\subsection{说话人确认系统评价指标}

说话人识别中的错误一般包含两种：漏警（False Reject, FR）和虚警（False Alarm, FA）。漏警表示模型将目标说话人的语音误判为非目标说话人，
虚警表示模型将非目标说话人的语音误判为目标说话人。因此，漏警率（False Reject Rate, FRR）和虚警率（False Alarm, FAR）的具体公式表示如下：

\begin{equation}
	FAR=\frac {N_{FA}}{N_{IRA}}\times 100\%
\end{equation}

\begin{equation}
	FRR=\frac {N_{FR}}{N_{GRA}}\times 100\%
\end{equation}

其中，$N_{FA}$为虚警次数，$N_{IRA}$为类间测试次数，$N_{FR}$为漏警次数，$N_{GRA}$为类内测试次数。

显然，这两种错误率与阈值的大小有直接关系。阈值越低，系统越容易将两条音频判定为同一个说话人，即FA高而FR低；
相反阈值越高，系统越容易将两条音频判定为非同一说话人，即FA低而FR高。因此，FAR将随阈值的增大而减小，而FRR将随阈值的减小而增大。

由于漏警率（False Reject Rate, FRR）和虚警率（False Alarm, FAR）对阈值的依赖，评价说话人确认系统的表现一般可以通过等错误率、检测代价函数和检测错误权衡曲。

\begin{itemize}
	\item \textbf{等错误率（Equal Error Rate, EER）}：如图2所示，在阈值变化的过程中，存在某一阈值使得FAR=FRR，此时的FAR与FRR的大小即为等错误率。
	EER 是声纹识别任务中最常用的性能评价指标，一般来说，EER越小，系统性能越好。
 	\item \textbf{检测代价函数 (Detection Cost Function, DCF)}：在不同场景下，声纹任务的要求也有所不同，有些场景要求即使给用户带来不便也要保证安全，
	 不能轻易让系统接受非目标说话人；而有些场景对便捷性要求更高，需要系统接受更多的语音。因此形成了一种针对两种错误率的检测代价函数DCF，其公式定义如下：
	\begin{small}
		\begin{equation}
			C_{det}(FRR, FAR)=C_{FRR}\times FRR\times P_{tar}+C_{FAR}\times FAR\times (1-P_{tar})
		\end{equation}
	\end{small}
	其中$C_{FRR}$和$C_{FAR}$代表漏警和虚警的惩罚代价，$P_{tar}$代表真实说话人先验概率，即测试集中正样例（注册音频和测试音频为同一个说话人）所占的比例。不同的场合可以使用不同的惩罚权重，例如在对虚警率要求较高的门禁系统中，可以增大$C_{FAR}$的值。在$C_{FAR}$、$C_{FRR}$、$P_{tar}$、$1-P_{tar}$确定的情况下，通过代入不同阈值时的FAR和FRR，选择DCF最小时的阈值为系统的确认阈值，此时即为系统的最小检测代价。同样，minDCF越小，系统性能越好。同时，由于计算出的DCF值比较小，在实际应用中为了方便观察，通常也会将其扩大10倍或100倍。
	\item \textbf{检测错误权衡 (Detection Error Tradeoff, DET)曲线}：如\ref{chapter1:det}所示，DET曲线是用图的形式绘制了随着判断阈值的变化，虚警率和漏警率之间的变化关系，有更好的直观性。图\ref{chapter1:det}为一个 DET 曲线。一般来说 DET 曲线与 xy 轴面积越小，系统的性能就越好。 
	
	\begin{figure}[htbp]
		\centering
		\includegraphics[scale=1.1]{figures/chapter1/DET.jpg}
		\caption{DET曲线}
		\label{chapter1:det}
	\end{figure}

\end{itemize}

本文中，主要使用EER和minDCF作为评价说话人确认系统的指标。

\section{研究内容}

本文主要对文本无关的说话人确认技术开展研究工作，在研究当前多种主流的基于神经网络的说话人确认技术方案和数据增广方法之后，将最佳模型应用到复杂场景中，同时对损失函数、模型结构和后端打分策略进行改进，提升说话人确认系统的鲁棒性。按照章节顺序研究内容具体包括如下：

\subsection{基于神经网络的说话人确认技术}

如何使用神经网络来建模说话人信息是解决各类说话人相关任务的基础，而如何从信息复杂的语音信号中提取出说话人的表征是解决说话人确认技术的关键。
为了充分利用了神经网络建模能力强的优势，本文研究了目前主流的几种基于神经网络的说话人建模方法，包括基于深度神经网络的d-vector、
基于时延神经网络的x-vector、基于残差连接的ResNet、基于通道加重注意力机制的ECAPA-TDNN，介绍了各模型中的各个组件的作用。
通过消融实验，探究了变速、变调、加性噪声、混响、SpecAugment五种数据增广方式对这些模型的影响。
在大规模的说话人识别数据集VoxCeleb上，ECAPA-TDNN取得了最好的表现，得到了EER/minDCF为3.09\%/0.2940的结果。
同时，五种数据增广方式中，加性噪声得到了最好的单一增广结果，EER/minDCF分别为2.55\%/0.2739，相对ECAPA-TDNN基线系统结果降低了11\%/7\%。

\subsection{复杂场景下的说话人确认技术}

虽然目前的说话人确认系统已经有很好的表现，但是在实际应用场景中，说话人确认系统在受到背景噪声、混响等复杂因素影响时，识别准确率会显著下降，因此在复杂场景下说话人确认系统的鲁棒性是研究的重点与难点。针对复杂场景中说话人确认系统可能存在的问题，本文基于ECAPA-TDNN和ResNet34及其变体，使用补体交叉熵和对比损失函数、结合使用卷积与注意力机制、使用模型汤和分数融合策略，探索提升系统鲁棒性的方法。为了研究复杂场景下的鲁棒说话人确认技术，本文在更能代表真实场景的中文数据集CN-Celeb上进行相关实验，最终得到EER/minDCF最低为7.83\%/0.4157的结果，相对基线系统ECAPA\_1024结果降低了11\%/15\%。

\section{论文章节内容安排}

本文由四章组成。

第一章为绪论，介绍了说话人研究的背景意义、研究现状和本文的主要工作。

第二章是对基于神经网络的说话人确认技术的介绍。研究了目前几种主流的说话人确认模型在VoxCeleb数据集上的表现。使用数据增广的方式探索了各个模型的鲁棒性。

第三章研究了复杂场景下的说话人确认技术。在11个不同场景下录制的数据集CN-Celeb上，探索了不同模型以及不同损失函数的鲁棒性，
通过模型汤和分数融合策略，探索出在该数据集上最优的模型表现。

第四章对全文的研究工作进行了总结，并对说话人确认技术在未来的相关研究进行展望。